Toward a Formal Evaluation of Refactorings
نویسندگان
چکیده
Refactoring is a software development strategy that characteristically alters the syntactic structure of a program without changing its external behavior [2]. In this talk we present a methodology for extracting formal models from programs in order to evaluate how incremental refactorings affect the verifiability of their structural specifications. We envision that this same technique may be applicable to other types of properties such as those that concern the design and maintenance of safety-critical systems.
منابع مشابه
Automatically Checking the Correctness of Feature Model Refactorings
Software Product Line evolution can be performed by refactorings, which involve not only program refactorings improving code structure, but also feature model (FM) refactorings in order to improve configurability. However, the current catalog of FM refactorings is not complete, and is difficult to propose new sound refactorings. Moreover, there is no guideline how to apply such catalog in a ref...
متن کاملRefactoring Object-Z specifications
This paper describes an approach to transferring techniques of refactorings to formal methods. We use syntactical rewriting rules to express refactorings on Object-Z specifications. In contrast to programming languages here refactorings can be formally proven to preserve the behaviour of the specification. We give an outline of such a proof of behaviour preservation.
متن کاملFormalisation of Haskell refactorings
Refactoring is a technique for improving the design of existing programs without changing their external behaviour. HaRe is the refactoring tool we have built to support refactoring Haskell 98 programs. Along with the development of HaRe, we have also investigated the formal specification and proof of validity of refactorings. This formalisation process helps to clarify the meaning of refactori...
متن کاملStatic composition of refactorings
The number of possible refactorings is unlimited, so no tool vendor will ever be able to provide custom refactorings for all specific user needs. Therefore, we propose a new kind of refactoring tools, which allow users to create, edit and and compose required refactorings just like any other documents. The heart of such a refactoring editor is the ability to compose larger refactorings from exi...
متن کاملUsing Programming Laws to Modularize Concurrency in a Replicated Database Application
As the use of AspectJ grows, it seems appropriate to define refactorings for that language. Most of the already defined aspect-oriented refactorings do not have a formal basis to ensure it preserves behaviour. This paper shows the application of programming laws and derived refactorings to separate a crosscutting concern from a system’s core logic using AspectJ. We used programming laws to incr...
متن کامل